package com.inputabc.ct.v1.ui;

import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 关于对话框
 */
public class AboutDialog extends JDialog {
    private JTextArea textArea;
    private JButton closeButton;
    
    // 关于信息文件
    private static final String ABOUT_FILE = "关于.txt";
    
    /**
     * 创建关于对话框
     * @param parent 父窗口
     */
    public AboutDialog(JFrame parent) {
        super(parent, "关于", true);
        
        // 初始化组件
        initComponents();
        
        // 加载关于信息
        loadAboutText();
        
        // 设置对话框属性
        setSize(500, 300);
        setLocationRelativeTo(parent);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    }
    
    /**
     * 初始化组件
     */
    private void initComponents() {
        setLayout(new BorderLayout(10, 10));
        
        // 创建文本区域
        textArea = new JTextArea();
        textArea.setEditable(false);
        textArea.setLineWrap(true);
        textArea.setWrapStyleWord(true);
        textArea.setFont(new Font("Dialog", Font.PLAIN, 14));
        textArea.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        
        // 添加滚动面板
        JScrollPane scrollPane = new JScrollPane(textArea);
        add(scrollPane, BorderLayout.CENTER);
        
        // 创建按钮面板
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        closeButton = new JButton("关闭");
        closeButton.addActionListener(e -> dispose());
        buttonPanel.add(closeButton);
        
        add(buttonPanel, BorderLayout.SOUTH);
    }
    
    /**
     * 加载关于信息
     */
    private void loadAboutText() {
        try {
            File file = new File(ABOUT_FILE);
            
            // 如果文件不存在，创建默认内容
            if (!file.exists()) {
                createDefaultAboutFile();
            }
            
            // 读取文件内容
            StringBuilder content = new StringBuilder();
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
            String line;
            
            while ((line = reader.readLine()) != null) {
                content.append(line).append("\n");
            }
            
            reader.close();
            
            // 设置文本内容
            textArea.setText(content.toString());
            textArea.setCaretPosition(0);
            
        } catch (Exception e) {
            e.printStackTrace();
            textArea.setText("无法加载关于信息。错误: " + e.getMessage());
        }
    }
    
    /**
     * 创建默认的关于文件
     */
    private void createDefaultAboutFile() {
        try {
            File file = new File(ABOUT_FILE);
            OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
            
            writer.write("CT Cat 翻译工具\n");
            writer.write("版本: 1.9.3\n\n");
            writer.write("一款简洁高效的翻译软件，支持多种翻译引擎和语言方向。\n");
            writer.write("Copyright © "+new SimpleDateFormat("yyyy").format(new Date()) +" inputabc\n");
            
            writer.close();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
} 